define(function () {
    var self;
    var qtps = app.Module.extend({
       init:function () {
           self = this;
           self.data = {
               list:[],
               currentData:{
                   selectList:[],
                   company:"",//承运公司
                   tradeNo:"",//物流单号
                   customerNo:"",//客户编号
                   productNo:"",//产品单号
                   seqNo:"",//序列号
                   count:1,//相同品名的运输数量统计  默认1
                   productName:"",//品名
                   spec:"",//规格
                   customerName:"",//客户名称
                   isEdit:false,//是否有修改操作
                   editIndex:'',//当前修改的是第几页的数据 默认''
                   checkRepeat:false,//是否已校验重复
                   GWCS010:"",
                   GWCS002:"",
                   GWAKPLANT:'',
                   ERPOrderNo:'',//ERP单号
                   // gwcs014:"",//业务员
                   // gwcs015:"",//业务员手机
                   businessId:'',//业务人员
                   businessName:'',//业务人员名称
                   businessMOBILE:'',//业务人员手机
               },
               sub:[]
           }
           self._super({
               _refreshAutoInit: true,
               _sliderId: 'slider', // tabs
           }, win);
           mui.ready(function () {
               self.getCompany();

               new Vue({
                   el:doc.getElementById("content"),
                   data:self.data,
                   methods:{
                       edit:function (index) {
                           //复制一个新对象给目标  绑定区域的数据就都是独立的
                           // 如果不Clone 对象之间的传递是双向的 两个绑定区域都是使用的同一个对象
                           self.data.currentData = app.cloneJSON(self.data.list[index]);
                           self.data.currentData.editIndex = index;
                           self.data.currentData.isEdit = true;
                       },
                       scanQRCode:function (type) {
                           app.scanQRCode(function(result){
                               if (type == '1') {
                                  self.data.currentData.tradeNo = result;
                               }
                               if (type == '2'){
                                   self.data.currentData.customerNo = result;
                               }
                               if (type == '3'){
                                   self.data.currentData.productNo = result;
                               }
                               if (type == '4'){
                                   self.data.currentData.seqNo = result;
                               }
                               if (type == '5'){
                                   self.data.currentData.ERPOrderNo = result;
                               }
                            });
                       },
                       deleteItem:function (index) {
                           mui.confirm('确认删除该条记录？', '提示', ['确认', '取消'], function(e) {
                               if (e.index == 0) {
                                   self.data.list.removei(index);
                               }
                           });
                       }
                   }
               });

               app.taps.call(win, [
                   {
                       o: 'saveDiv',
                       cb: function () {
                            var isnull = self.checkNull();

                            if (isnull != false){
                                var productNoString = "";
                                //判断是否是编辑状态
                                if (self.data.currentData.isEdit) {
                                    var listCopy = app.cloneJSON(self.data.list);
                                    listCopy[self.data.currentData.editIndex] = self.data.currentData;
                                    for (var i=0;i<listCopy.length;i++){
                                        productNoString = productNoString + (self.data.currentData.productNo+",");
                                    }
                                }else{
                                    for (var i=0;i<self.data.list.length;i++){
                                        productNoString = productNoString + (self.data.currentData.productNo+",");
                                    }
                                }

                                var tradeNum = productNoString.split(self.data.currentData.productNo).length-1;

                                self.checkAndDone(tradeNum);
                            }
                       }
                   },
                   {
                       o: 'submitDiv',
                       cb: function () {
                           if (self.data.list.length == 0)
                               return false;

                           self.calcuTradeNum();
                           self.makeSubData();

                           app.ajax({
                               xurl: "api/wx/qtps/save",
                               xdata:{
                                   list:JSON.stringify(self.data.sub)
                               },
                               cb:function (result) {
                                   if (result.ok){
                                       app.toast("提交成功!");

                                   }

                                   self.data.list.removeAll();
                                   self.data.sub.removeAll();

                                   self.resetCurrent();
                                   self.data.currentData.selectList = result.ok?result.data.selectList:self.data.currentData.selectList;
                               }
                           })
                       }
                   },
                   {
                       o: 'showCompany',
                       cb: function () {
                           app.openPage({
                               src:"qtps/selectPage.html",
                               args: {
                                   cb: function (res) {
                                       self.data.currentData.company = res;
                                   },
                                   item:self.data.currentData.selectList
                               }
                           })
                       }
                   },
                   {
                       o: 'showBusiness',
                       cb: function () {
                           app.openPage({
                               src:"qtps/selectSearchPage.html",
                               args: {
                                   url:"api/wx/qtps/getBusinessmen",
                                   nodata:"无业务人员信息",
                                   cb: function (res) {
                                       self.data.currentData.businessId = res.ID;
                                       self.data.currentData.businessName = res.NAME;
                                       self.data.currentData.businessMOBILE = res.MOBILE;
                                   },
                               }
                           })
                       }
                   },
               ]);
           })
       },
        makeSubData:function(){

            self.data.list.forEach(function (item, index) {
                self.data.sub.push({
                    productNo:item.productNo,//产品单号
                    customerNo:item.customerNo,//客户编号
                    count:item.count,//该单所属品类的最大运输量
                    GWCUSEQ:'',
                    GWCU001:item.productNo,//产品单号
                    GWCU002:item.seqNo,//序列号
                    GWCU003:'',//销售单位
                    GWCU004:1,//运输数量
                    GWCU005:item.company,//承运公司
                    GWCU030:item.GWCSDOCNO,//订单单号
                    GWCU031:item.count,//订单单号项序
                    GWCU104:item.tradeNo,//物流单号
                    productName:item.productName,
                    spec:item.spec,
                    GWCS010:item.customerNo,//客户编号
                    GWCS002:item.GWCS002,//销售单位
                    GWAKPLANT:item.GWAKPLANT,//设备销售方->mmra017
                    GWCSDOCNO:item.GWCSDOCNO,//订单单号
                    ERPOrderNo:item.ERPOrderNo,//ERP单号
                    // gwcs014:"",//业务员
                    // gwcs015:"",//业务员手机
                    businessId:item.businessId,//业务人员
                    businessName:item.businessName,//业务人员名称
                    businessMOBILE:item.businessMOBILE,//业务人员手机
                });
            })

            
        },
        calcuTradeNum:function(){
            var productNoString = "";
            for (var i=0;i<self.data.list.length;i++){
                productNoString = productNoString + (self.data.list[i].productNo+",");
            }

            for (var i=0;i<self.data.list.length;i++){
                var tradeNum = 1;//当前品号的运输量统计
                tradeNum = productNoString.split(self.data.list[i].productNo).length-1;
                self.data.list[i].count = tradeNum;
            }
        },
        doEditOrAdd:function(){
            var editIndex = self.data.currentData.editIndex;
            var isEdit = self.data.currentData.isEdit;
            if (!isEdit){
                self.data.list.push(self.data.currentData);
            }
            else if (isEdit){
                self.data.list.removei(editIndex);
                self.data.list.push(self.data.currentData);
            }

            self.resetCurrent();
            self.data.currentData.selectList = self.data.currentData.selectList;
        },
        checkAndDone:function(tradeNum){
            //获取订单数量
            app.ajax({
                xurl: "api/wx/qtps/check",
                xdata:{
                    customerNo:self.data.currentData.customerNo,
                    productNo: self.data.currentData.productNo,
                    seqNo:self.data.currentData.seqNo
                },
                cb: function (result) {
                    if (result.ok) {
                        var data = result.data.data;
                        if (!data.customerNoIsValid){
                            app.toast("客户编号无效!")
                            return false;
                        }

                        if (!data.ProductNoIsInKC) {
                            app.toast("料件中产品品号不存在!")
                            return false;
                        }

                        if (data.ifPurchaseProduct) {
                            app.toast("该产品序号已经存在!")
                            return false;
                        }

                        // productName:"",//品名
                        //     spec:"",//规格
                        //     customerName:"",//客户名称
                        self.data.currentData.productName = data.productName;
                        self.data.currentData.spec = data.spec;
                        self.data.currentData.customerName = data.customerName;
                        self.data.currentData.count = tradeNum+1;//添加或新增 运输数量+1
                        self.data.currentData.GWCS010 = data.GWCS010;//客户编号
                        self.data.currentData.GWCS002 = data.GWCS002;//销售单位
                        self.data.currentData.GWAKPLANT = data.GWAKPLANT;//设备销售方
                        self.data.currentData.GWCSDOCNO = data.GWCSDOCNO;//正式单号
                        self.data.currentData.GWCS014 = data.GWCS014;//业务员
                        self.data.currentData.GWCS015 = data.GWCS015;//业务员手机
                        self.doEditOrAdd();
                    }
                }
            });
        },
        checkNull:function(){
            var current = self.data.currentData;
            if (current.company == "") {
                app.toast("请 选择/手录 承运公司");
                return false;
            }

            if (current.tradeNo == "") {
                app.toast("请 扫码/手录 物流单号");
                return false;
            }

            if (current.customerNo == "") {
                app.toast("请 扫码/手录 客户编号");
                return false;
            }

            if (current.productNo == "") {
                app.toast("请 扫码/手录 产品品号");
                return false;
            }

            if (current.seqNo == "") {
                app.toast("请 扫码/手录 序列号");
                return false;
            }

            if (current.businessId == "") {
                app.toast("请 选择 业务人员");
                return false;
            }

        },
        resetCurrent:function(){
            self.data.currentData = {
                selectList:[],
                // selectList:[{'GWCU005':'顺丰'},{'GWCU005':'天天'},,{'GWCU005':'韵达'}],
                company:"",//承运公司
                tradeNo:"",//物流单号
                customerNo:"",//客户编号
                productNo:"",//产品单号
                seqNo:"",//序列号
                count:1,//相同品名的运输数量统计  默认1
                productName:"",//品名
                spec:"",//规格
                customerName:"",//客户名称
                isEdit:false,//是否有修改操作
                editIndex:'',//当前修改的是第几页的数据 默认''
                checkRepeat:false,//是否已校验重复
                GWCS010:"",
                GWCS002:"",
                GWCSMLEGAL:'',
                ERPOrderNo:"",
                // gwcs014:"",//业务员
                // gwcs015:"",//业务员手机
                businessId:'',//业务人员
                businessName:'',//业务人员名称
                businessMOBILE:'',//业务人员手机
            };
        },
        getCompany:function(){
            app.ajax({
                xurl: "api/wx/qtps/getCompany",
                cb: function (result) {
                    if (result.ok) {
                        self.data.currentData.selectList = result.data.data;
                    }
                }
            });
        },
       _lazy: function () {
           // this._super();

           mui('.mui-scroll-wrapper').scroll({
               deceleration: 0.0005
           });
       }

   })
    return new qtps();
})